1. Field of the Invention
This invention relates to a method, system and computer program product for restoration of a real hardware server or a Virtual Machine server from hibernation.
2. Background of the Related Art
Current trends in system and application development involve ever increasing use of virtualized hardware. For example, cross-platform software now includes not only hardware- and operating system-independent user applications, but also operating systems themselves, as well as virtualization means for adaptation of “non-native” OS's to different hardware platforms. Examples of virtualized hardware are Virtual Machines that virtualize a processor and/or an operating system running on the processor. Examples of such Virtual Machines are marketed by, for example, Parallels Software International, Inc., Microsoft Corporation and VMware, Inc. Other examples of a virtualized server include a Virtual Private Server (VPS, sometimes referred to as a Virtual Environment, VE), such as those marketed by Parallels™.
Some “ready to start” techniques, such as LiveCD, LiveDistro or the like (http://**en.wikipedia.org/wiki/Live_cd), use a preferably prepared media containing all the data required for starting and execution of a set of processes without installation. They provide an option to start with any hardware configuration, but with fewer supported possibilities. Another disadvantage is that started system is used for certain purposes, e.g., for hardware testing or configuring and should be removed before starting a native operating system of the computer.
The simplest way to restart a Virtual Execution Environment (VEE) is by restoring it from backup files created continuously while running the VM/VEE, such as can be implemented by restoration software from Acronis, Inc. This approach could be used when restarting the VM/VEE in some current state, since some data, e.g., virtual memory state, is lost in the process of backing up the disk storage.
There are mechanisms in different operating systems that provide a hibernation feature, where a VM/VEE can be restored from a hibernating state, so that application programs can continue executing as if nothing happened.
Microsoft Windows™ 2000 (and later) supports hibernation at the operating system level without special drivers from the hardware manufacturer. Safe Sleep, the Apple Macintosh equivalent of “hibernate”, has been available for new Mac models. In the Linux kernel, “Hibernate” or “suspend-to-disk” is implemented by the swsusp command, which is built into the Linux 2.6 series.
Analogous technology may be implemented in a virtual execution environment, e.g., VMware products implement a snapshot feature that captures the entire state of the Virtual Machine at the time it is snapshotted, including the state of all the Virtual Machine's disks, the contents of the Virtual Machine's memory and the Virtual Machine settings. Such a system is disclosed in U.S. Pat. No. 6,795,966.
For example, the operating system that uses IDs of devices (e.g., those of PCI devices) can function incorrectly or even hang if the System Identification Number is somehow changed between “sleep” and “resume”.
What is a need in the art of cross-platform saving and restoration of a working state of the computing system. Nevertheless, cross-platform hibernation and restoration is now a problem that cannot be resolved easily, due to different data format of different files, where contents of the Virtual Machines should be migrated. Another problem is different peripheral devices used in different platforms, and even different peripheral device settings that may be used on the same platform.